package com.podium.generator.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.podium.generator.entity.GeneratorTable;

import java.util.List;

/**
 * @author 邵文泽
 * @description 代码生成数据库表服务
 * @date 2025/4/16 11:08
 */
public interface GeneratorTableService {

    /**
     * 查询数据库表
     *
     * @param objectPage 分页对象
     * @return 数据库表列表
     */
    IPage<GeneratorTable> databaseTables(Page<GeneratorTable> objectPage, String tableName);

    /**
     * 导出数据库表
     *
     * @param tableNames 数据库表名
     * @return 是否导出成功
     */
    boolean exportDatabaseTables(List<String> tableNames);

    /**
     * 分页查询
     *
     * @param page          分页对象
     * @param tableName     表名
     * @param tableDescribe 表描述
     * @return 数据库表列表
     */
    IPage<GeneratorTable> page(Page<GeneratorTable> page, String tableName, String tableDescribe);

    /**
     * 根据id查询数据库表
     *
     * @param id 标识
     * @return GeneratorTable
     */
    GeneratorTable getById(Long id);

    /**
     * 保存数据库表
     *
     * @param generatorTable 数据库表
     * @return 是否保存成功
     */
    boolean save(GeneratorTable generatorTable);

    /**
     * 根据id更新数据库表
     *
     * @param generatorTable 数据库表
     * @return 是否更新成功
     */
    boolean updateById(GeneratorTable generatorTable);

    /**
     * 根据id删除数据库表
     *
     * @param id 标识
     */
    void removeById(Long id);


}
